package GUI;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

import javax.swing.JFileChooser;
import javax.swing.JTextPane;

/**
 * @author versão Original: Rafael Barros
 * @author versão Micenas: Brian Mazini Siervi ~> http:www.briansiervi.com
 */

public class AbrirAction{

	private String textoInserido, nomeCaminho;	
	
	/**
	 * Método que abre um arquivo e insere o respectivo texto no TextPane passado por parâmetro.
	 * Este método também abre o JFileChoose no caminho passado por parâmetro
	 * @param textPane
	 * @param caminhoDestino
	 */
	
	
	public AbrirAction(JTextPane textPane, String caminhoDestino){
		JFileChooser jfc = new JFileChooser();		
		
		if(!caminhoDestino.equals("")){			
			jfc.setCurrentDirectory(new File(caminhoDestino));				
		}else{
			jfc.setCurrentDirectory(new File("."));
		}
		jfc.setFileFilter(new FiltroJFileChooser());
		int resposta = jfc.showOpenDialog(textPane);
		if(resposta == JFileChooser.APPROVE_OPTION){			
			setCaminhoArquivo(jfc.getSelectedFile().getAbsolutePath().toString());						
			setLeArquivo(jfc.getSelectedFile());			
		}
	}
	
	
	/*public AbrirAction(int txtField){ //construtor de teste ~> deletar após testes e descomentar o de cima
		if(txtField == 1){
			setCaminhoArquivo("C:\\Users\\Principal\\Desktop\\exe1_brian.xml");						
			setLeArquivo(new File("C:\\Users\\Principal\\Desktop\\exe1_brian.xml"));			
		}else{
			setCaminhoArquivo("C:\\Users\\Principal\\Desktop\\exe2_brian.xml");						
			setLeArquivo(new File("C:\\Users\\Principal\\Desktop\\exe2_brian.xml"));
		}
	}
	*/
	private void setLeArquivo(File arquivo){
		try {
			RandomAccessFile raf = new RandomAccessFile(arquivo, "r");
			String textoLinha,concatenado="";
			
			while((textoLinha = raf.readLine()) != null){  
				concatenado =concatenado + textoLinha + "\n";
			}
			setTexto(concatenado);
			
			raf.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}			
	}		

	private void setTexto(String textoInserido){
		this.textoInserido = textoInserido;
	}

	public String getTexto(){
		return textoInserido;
	}

	protected void setCaminhoArquivo(String nomeCaminho){
		this.nomeCaminho = nomeCaminho;
	}

	protected String getCaminhoArquivo(){
		return nomeCaminho;
	}

	public long lastModified() {
		// TODO Auto-generated method stub
		return 0;
	}
}
